﻿using System;

namespace Comun
{
	/// <summary>
	/// Descripción breve de cFormat.
	/// </summary>
	public class Format
	{
		public Format()
		{

		}

		public static string FormatDocBDToPC(string sTipo, string sNro)
		{
			return sNro;
		}

		public static string FormatDocPCToBD(string sTipo, string sNro)
		{
			return sNro;
		}

        public static string FormatNumBDToPC(string sNum)
        {
            if ((sNum != "") && (sNum != null))
                return Convert.ToDouble(sNum).ToString("N");                
            else
                return "";
        }


		public static string FechaBDToPc(string sYYYYMMDD)
		{
			int anio, mes,dia;

			try
			{
				if (sYYYYMMDD.Length ==8)
				{

					anio = Convert.ToInt32(sYYYYMMDD.Substring(0,4),10);
					mes = Convert.ToInt32(sYYYYMMDD.Substring(4,2),10);
					dia = Convert.ToInt32(sYYYYMMDD.Substring(6,2),10);
					DateTime dFecha =new DateTime(anio, mes, dia);

					return dFecha.ToShortDateString();
				}
				else
					return "";
			}
			catch
			{
				return "";
			}
		}

        public static string DescripcionDeItem(string Frase, string Delimitador)
        {

            if (Frase.IndexOf(Delimitador, 0) > 0)
                return Frase.Substring(Frase.IndexOf(Delimitador, 0) + 1);
            else
                return "";

        }

        public static string CodigoDeItem(string Frase, string Delimitador)
        {

            if (Frase.IndexOf(Delimitador, 0) > 0)
                return Frase.Substring(0, Frase.IndexOf(Delimitador, 0));
            else
                return "";


        }

		public static string HoraBDToPc(string sHora)
		{
			string sH="";

			if (sHora.Length >=6)
			{
				sH = sHora.Substring(0,2) + ":";
				sH = sH + sHora.Substring(2,2) + ":";
				sH = sH + sHora.Substring(4,2);
			}
			return sH;
		}

		public static string HoraPcToBD(string sLongTimeString)
		{
			string hora, minutos, segundos;
			string sHoraBD="";
			DateTime dFecha;
		
			try
			{
				dFecha = Convert.ToDateTime(sLongTimeString);

				hora =  ("00" + dFecha.Hour.ToString());
				hora = hora.Substring(hora.Length-2,2);

				minutos =  ("00" + dFecha.Minute.ToString());
				minutos = minutos.Substring(minutos.Length-2,2);

				segundos =  ("00" + dFecha.Second.ToString());
				segundos = segundos.Substring(segundos.Length-2,2);				
							
				sHoraBD = hora + minutos + segundos;
				return sHoraBD;
			}
			catch
			{
				return "";
			}			
		}

	
		public static string FechaPcToBD(string sShortDate)
		{
			string anio, mes,dia;
			string sFechaBD="";
			DateTime dFecha;
		
			try
			{
				dFecha = Convert.ToDateTime(sShortDate);

				anio = ("20" + dFecha.Year.ToString());
				anio = anio.Substring(anio.Length-4,4);

				mes = ("00" + dFecha.Month.ToString());
				mes = mes.Substring(mes.Length-2,2);

				dia = ("00" + dFecha.Day.ToString());
				dia= dia.Substring(dia.Length-2,2);

				sFechaBD = anio + mes +dia;
				return sFechaBD;
			}
			catch
			{
				return "";
			}
		}

		public static string StToBD(string St)
		{
			if ((St!="") && (St != null))
				return "'" + St + "'";
			else
				return "NULL";
		}

		public static string NumToBD(string St)
		{
			if ((St!="") && (St != null))
				return St.Replace(",",".");
			else
				return "NULL";
		}

		public static double StringToDouble(string sNum)
		{
			if ((sNum != "") && (sNum != null))
				return Convert.ToDouble(sNum);
			else
				return 0;
		}

        //public static string TagXml(string campo, string valor)
        //{
        //    return "<" + campo + ">" + valor  + "</" + campo + ">";
        //}

        public static string Maximo(string sFecha1, string sFecha2)
        {
            try
            {
                if (sFecha1 != "")
                {
                    if (sFecha2 != "")
                    {
                        if (Convert.ToInt64(sFecha1) > Convert.ToInt64(sFecha2))
                            return sFecha1;
                        else
                            return sFecha2;
                    }
                    else
                        return sFecha1;
                }
                else
                    return sFecha2;

            }
            catch
            {
                return "";
            }

        }

    }
}